Q1

a
\[
L(\mu, \sigma, y) = \sum_{i=1}^n \frac{1}{\sqrt{2\pi \sigma^2}}
e^{-\frac{1}{2\sigma^2}\sum_{i=1}^n (y_i - \mu)^2} \Rightarrow
\\
l = C - \sum_{i=1}^n (y_i - \mu)^2 \Rightarrow \frac{\partial
l}{\partial \mu} = 2\sum_{i=1}^n (y_i - \mu) = 0 \iff \mu = \bar y
\Rightarrow \mu_{MLE} = \bar y
\]
b
i
\[
L(\mu, \delta) = (\mu-\delta)^2
\\
R(\mu, \delta) = E_Y((\mu-\delta)^2) = Bias(\delta,\mu)^2 + V(\delta) =
(c-1)^2\mu^2 + c^2\sigma^2
\\
\delta^* = \underset {\delta}{argmin} \ \underset{\mu}{sup} \ R(\mu,
\delta) = \underset {\delta}{argmin} \ \underset{\mu}{sup} \
E_Y((\mu-\delta)^2)
\\
\quad \text{in order to maximize the risk function we want } \mu \text{
to be as far as large as possibe }
\\
\mu^* = a \Rightarrow c^*= \underset {c}{argmin} (c-1)^2a^2 +
c^2\sigma^2
\\
\frac{\partial (c-1)^2a^2 + c^2\sigma^2}{\partial c} = ca-a+c\sigma^2 =
0 \iff c = \frac{a}{a + \sigma^2}\Rightarrow c^* = \frac{a}{a +
\sigma^2}
\\
\text{thus we get: } \hat \mu_c = \frac{a}{a + \sigma^2} y
\]
ii
\[
\rho(\pi, \delta) = \sum_{j=1}^2 R(\mu_j,\delta)\pi(\mu_j) = 0.5R(a,
\delta) + 0.5R(-a, \delta) = 0.5((c-1)^2a^2 + c^2\sigma^2 +
(c-1)^2a^2 + c^2\sigma^2) = (c-1)^2a^2 + c^2\sigma^2
\\
\text{as we saw the minmax estimator minimizes this funtion thus
} \delta_\pi^* \text{ is a minmax rule ,therfore it is a least
favorable prior}
\\
\delta_\pi^* \text{ is unique and } \delta_\pi^* < \infty \text{ thus
it is addmissible}
\]
Q2

a
\[
L(p, a) = (p - a)^2
\\
\text{using the hint and taking a beta prior we can calaulate te
posterior: }
\\
\pi(p|y) \propto {n \choose y}
p^{y}(1-p)^{n-y}p^{\alpha-1}(1-p)^{\beta-1} \propto p^{y+
\alpha-1}(y+1-p)^{n-y+\beta-1}
\\
\text{thus we get: } \pi(p|y) \sim Beta(y+ \alpha, n-y+\beta)
\\
\text{we can calculate the bayes rule estimator: }
\\
\hat p = E(p|y) = \frac{y+ \alpha}{y+ \alpha+n-y+\beta} = \frac{y+
\alpha}{\alpha+n+\beta}
\\
\text{plug it into the risk function: }
R(p,\hat p) = Bias(p- \hat p) + V(\hat p)
\\
Bias(\hat p-p) = \frac{np + \alpha}{\alpha+n+\beta} - p = \frac{\alpha -
(\alpha+\beta)p}{\alpha+n+\beta}
\\
V(\hat p) = \frac{V(y)}{(\alpha+n+\beta)^2} =
\frac{np(1-p)}{(\alpha+n+\beta)^2}
\\
\text{plug both equations back in } R(p,\hat p):
\\
R(p,\hat p) = \left (\frac{\alpha - (\alpha+\beta)p }{\alpha+n+\beta}
\right )^2 + \frac{np(1-p)}{(\alpha+n+\beta)^2} = \frac{np(1-p) +
(\alpha- (\alpha+\beta)p)^2}{(\alpha+n+\beta)^2} = \frac{np(1-p) +
\alpha^2 - 2\alpha(\alpha+\beta)p +
((\alpha+\beta)p)^2}{(\alpha+n+\beta)^2} =
\\
= \frac{\alpha^2 + (-2\alpha(\alpha+\beta) + np)p +
((\alpha+\beta)^2-n)p^2}{(\alpha+n+\beta)^2}
\\
\text{thus if } (-2\alpha(\alpha+\beta) + np) = 0 \text{ and }
(\alpha+\beta)^2-n = 0
\]
\[
\text{thus if } (-2\alpha(\alpha+\beta) + np) = 0 \text{ and }
(\alpha+\beta)^2-n = 0
\\
\text{ we get a risk function which does not depend on p and we have a
minmax estimator}
\\
\text{if we take } \alpha = \beta = 0.5\sqrt n :
\\
(1): (-2\alpha(\alpha+\beta) + np) = 0 \quad
(2): (\alpha+\beta)^2-n = 0
\\
\text{thus we ge that the minmax estimator is: } \hat p = E(p|y) =
\frac{y+ 0.5 \sqrt n}{n + \sqrt n}
\]
b
\[
\text{ the above estimator is addmissible since it is a unique bayes
rule}
\\
Beta(\alpha, \beta) \text{ is a least favorable prior (the risk function
is constant for all p)}
\]
\[
\rho(\pi, a) = \int L(p, a) \text{Beta}(\alpha, \beta) dp = \int (p -
a)^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha, \beta)}dp
\\
\int (p - a)^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha, \beta)}dp =
\int \frac{p^{\alpha+1}(1-p)^{\beta-1}}{B(\alpha,\beta)} - 2 a
\frac{p^{\alpha}(1-p)^{\beta-1}}{B(\alpha,\beta)} - a^2
\frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp =
\\
\int \frac{p^{\alpha+1}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp =
\frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha +
\beta)}B(\alpha,\beta)\int
\frac{p^{\alpha+1}(1-p)^{\beta-1}}{B(\alpha,\beta)B(\alpha+2,\beta)} =
\frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)}
\\
\int 2 a \frac{p^{\alpha}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp = \ldots=
2a \frac{\alpha}{(\alpha + \beta)}
\\
\int a^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp = a^2
\\
\text{plugging all the calculations back in we get:}
\\
\int (p - a)^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha, \beta)}dp =
\frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)} -2a
\frac{\alpha}{(\alpha + \beta)} + a^2
\\
\frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)}
-2\frac{y+ \alpha}{\alpha+n+\beta} \frac{\alpha}{(\alpha + \beta)} +
(\frac{y+ \alpha}{\alpha+n+\beta})^2
\]
c
\[
\hat p = \frac{Y}{n} \text{ is addmissible:}
\\
\frac{Y}{n} \text{is a bayes rule w.r.t } \frac{(p-a)^2}{p(1-p)} \text{
(thus addmissible)}
\\
\text{assume there exsists some estimator } \tilde p \text{ such that: }
MSE(p-\tilde p) < MSE(p-\hat p) \text{ we get the following:}
\\
L^*(p,\tilde p) = \frac{E[(p-\tilde p)^2]}{p(1-p)} \le \frac{E[(p-\hat
p)^2]}{p(1-p)} = L^*(p,\hat p)
\\
\text{which is a contradiction to the addmissiblity of } \hat p \text{
w.r.t } L^*
\]
Q3

a
\[
difine: a = 0 \Rightarrow accept \ H_0, \quad a = 1 \Rightarrow accept \
H_1
\\
p_{yi} = P(\theta = \theta_i |y)
\\
L(\theta, a) = aL_1I(\theta = \theta_0) + (1-a)L_0I(\theta = \theta_1)
\\
\rho (\theta, \delta) = E_{\theta|y}(L(\theta, a)) = \delta L_1 p_{y0} +
(1-\delta)L_0p_{y1} = \delta (L_1p_{y0} - L_0p_{y1}) + L_0p_{y1}
\\
\delta^* = argmin_\delta\ \delta (L_1p_{y0} - L_0p_{y1}) + L_0p_{y1}
\\
\text{thus if: } \delta^* = I(L_1p_{y0} < L_0p_{y1})
\\
p_{y0} = P(\theta = \theta_0 |y) = \frac{f(y|\theta_0) p_0}{ f(y)}
\\
p_{y1} = P(\theta = \theta_1 |y) = \frac{f(y|\theta_1) p_1}{ f(y)} =
\frac{f(y|\theta) (1-p_0)}{ f(y)}
\\
L_1p_{y0} < L_0p_{y1} \iff \frac{p_{y1}}{p_{y0}} < \frac{L_0}{L_1}
\iff \frac{\frac{f(y|\theta_0) p_0}{ f(y)}}{\frac{f(y|\theta_1)
(1-p_0)}{ f(y)}} < \frac{L_0}{L_1} \iff
\frac{f(y|\theta_0)}{f(y|\theta_1)} < \frac{(1-p_0)L_0}{p_0L_1}
\\
\text{thus the bayes testing rule is: } \frac{p_0L_1}{(1-p_0)L_0} <
\frac{f(y|\theta_1)}{f(y|\theta_0)}
\]
b
\[
\text{this is a liklihood ratio test and thus a most powerfull test. the
critical values of the test is: } \frac{p_0L_1}{(1-p_0)L_0}
\]
c
\[
\text{the risk function is: }
\\
R(\theta, \delta^*) = \begin{cases}
P(\delta^* = 1) L_0 & \theta = \theta_0 \\
P(\delta^* =0)L_1 & \theta = \theta_1
\end{cases} = \begin{cases}
\alpha L_0 & \theta = \theta_0 \\
\beta L_1 & \theta = \theta_1
\end{cases} = \begin{cases}
\alpha L_0 & \theta = \theta_0 \\
\alpha L_0 & \theta = \theta_1
\end{cases}
\\
\text{which does not depend on } \theta \text{ thus the test is also
minmax}
\]
d
\[
* \text{LR- Liklihood ratio, LLR- Log Liklihood ratio}
\\
LR = \frac{f(y|\mu_1)}{f(y|\mu_0)} = exp \left
\{-\frac{1}{50}\sum_{i=1}^{100} (y_i-2)^2+\frac{1}{50}\sum_{i=1}^{100}
y_i^2 \right \}
\]
\[
\frac{10 p_0}{25 (1-p_0)} < LR \iff LLR > ln \left ( \frac{10
p_0}{25 (1-p_0)} \right ) \iff \left \{-\frac{1}{50}\sum_{i=1}^{100}
(y_i-2)^2+\frac{1}{50}\sum_{i=1}^{100} y_i^2 \right \} > ln \left (
\frac{10 p_0}{25 (1-p_0)} \right ) \iff
\\
\iff -\frac{1}{50}\sum_{i=1}^{100} (y_i^2-4y_i +4 -y_i^2) >ln \left
( \frac{10 p_0}{25 (1-p_0)} \right ) \iff 8 \bar y - 8 >ln \left (
\frac{10 p_0}{25 (1-p_0)} \right ) \iff
\\
\iff \bar y > 1+\frac{1}{8}ln \left ( \frac{10 p_0}{25 (1-p_0)}
\right )
\\
\text{just need to add plug in } p_0 \text{ and we have a valid test}
\\
\]
Q4

\[
\text{calculate te posterior: }
\\
\pi(\theta|x) \propto e^{-(x-\theta)} e^{-\theta}I(0<\theta <x) =
e^{-x}I(0<\theta <x) \quad \text{which is a constant function of }
\theta
\\
\text{ thus } \theta|x \sim U[0,x]
\\
\rho(\theta, \delta) = E_{\theta|x} L(\theta, \delta) \begin{cases}
P(1 < \theta < 2) + P(2 < \theta < 3) + 3P(3 < \theta
< 4) & \delta = AB \\
1P(0 < \theta < 1) + 2P(2 < \theta < 3) + 3P(3 < \theta
< 4) & \delta = A \\
1P(0 < \theta < 1) + 2P(1 < \theta < 2) + 3P(3 < \theta
< 4) & \delta = B \\
2P(0 < \theta < 1) + 2P(1 < \theta < 2) + 2P(2 < \theta
< 3) & \delta = O \\
\end{cases}
\\
\text{for the case where x=4: } P(1 < \theta < 2) = 0.25 \text{
plugging it back in yields: }
\\
\rho(\theta, \delta) = E_{\theta|x} L(\theta, \delta) \begin{cases}
1.25 & \delta = AB \\
1.5 & \delta = A \\
1.5 & \delta = B \\
1.5 & \delta = O \\
\end{cases}
\\
\text{the bayes action that minimizes } \rho(\theta, \delta) \text{ is }
\delta = AB
\]
Q5

a
\[
\text{we saw that for: } X \sim N(\mu_x, \sigma^2_x), \mu_x \sim
N(\tilde \mu, \sigma^2)
\\
\mu_x|x \sim N(\frac{\sigma^2}{\sigma^2 +
\sigma^2_x}x+\frac{\sigma_x^2}{\sigma^2 + \sigma^2_x} \tilde \mu,
(\sigma^2 + \sigma^2_x)^{-1})
\\
\text{the bayes estimate w.r.t the quadratic loss is: } E_{\mu_x|x} =
\frac{\sigma^2}{\sigma^2 + \sigma^2_x}x+\frac{\sigma_x^2}{\sigma^2 +
\sigma^2_x} \tilde \mu
\\
\text{pulgging in our setup yields: } E_{\mu_x|x} =
\frac{225}{325}115+\frac{100}{325}100 = 110.3846
\]
b
\[
\rho(x, \delta) = E_{\mu|x} L(\mu, \delta) = \int_{- \infty}^\delta
(\delta - \mu)f(\mu|x) d\mu + 2\int_{\delta}^\infty (\mu-
\delta)f(\mu|x) d\mu=
\\
= \delta\int_{- \infty}^\delta f(\mu|x) d\mu - \int_{- \infty}^\delta
\mu f(\mu|x) d\mu + 2\int_{\delta}^\infty \mu f(\mu|x) d\mu - 2\delta
\int_{\delta}^\infty f(\mu|x) d\mu=
\\
=\delta F(\delta) - \int_{- \infty}^\delta \mu f(\mu|x) d\mu +
2\int_{\delta}^\infty \mu f(\mu|x) d\mu - 2\delta(1-F(\delta))
\\
\frac{\partial \rho(x, \delta)}{\partial \delta} = F(\delta) + \delta
f(\delta|x) - \delta f(\delta|x) - 2 \delta f(\delta|x) - 2 + 2F(\delta)
+ 2 \delta f(\delta|x) = 3F(\delta|x) - 2 = 0 \iff \delta = F^{-1}(2/3)
\Rightarrow \delta^* = F^{-1}(2/3)
\\
\text{using r qnorm function we can estimate the genius IQ w.r.t to this
loss which yileds: } 113.9685
\\
* qnorm(2/3, 110.3846, sqrt(900/13))
\]
c
\[
\rho(x, \delta) = E_{\mu|x} L(\mu, \delta) = \int_{- \infty}^\infty
(\delta - \mu)^2e^{\frac{(\mu-100)^2}{900}}f(\mu|x) d\mu
\]
LS0tDQp0aXRsZTogIkVYIDUiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIFExDQoNCiFbXShRMS5wbmcpDQoNCiMjIyBhDQoNCiQkDQpMKFxtdSwgXHNpZ21hLCB5KSA9IFxzdW1fe2k9MX1ebiBcZnJhY3sxfXtcc3FydHsyXHBpIFxzaWdtYV4yfX0gZV57LVxmcmFjezF9ezJcc2lnbWFeMn1cc3VtX3tpPTF9Xm4gKHlfaSAtIFxtdSleMn0gXFJpZ2h0YXJyb3cNClxcDQpsID0gQyAtIFxzdW1fe2k9MX1ebiAoeV9pIC0gXG11KV4yIFxSaWdodGFycm93IFxmcmFje1xwYXJ0aWFsIGx9e1xwYXJ0aWFsIFxtdX0gPSAyXHN1bV97aT0xfV5uICh5X2kgLSBcbXUpID0gMCBcaWZmIFxtdSA9IFxiYXIgeSBcUmlnaHRhcnJvdyBcbXVfe01MRX0gPSBcYmFyIHkgDQokJA0KDQojIyMgYg0KDQojIyMjIGkNCg0KJCQNCkwoXG11LCBcZGVsdGEpID0gKFxtdS1cZGVsdGEpXjINClxcDQpSKFxtdSwgXGRlbHRhKSA9IEVfWSgoXG11LVxkZWx0YSleMikgPSBCaWFzKFxkZWx0YSxcbXUpXjIgKyBWKFxkZWx0YSkgPSAoYy0xKV4yXG11XjIgICsgY14yXHNpZ21hXjINClxcDQpcZGVsdGFeKiA9IFx1bmRlcnNldCB7XGRlbHRhfXthcmdtaW59IFwgXHVuZGVyc2V0e1xtdX17c3VwfSBcIFIoXG11LCBcZGVsdGEpID0gXHVuZGVyc2V0IHtcZGVsdGF9e2FyZ21pbn0gXCBcdW5kZXJzZXR7XG11fXtzdXB9IFwgRV9ZKChcbXUtXGRlbHRhKV4yKQ0KXFwNClxxdWFkIFx0ZXh0e2luIG9yZGVyIHRvIG1heGltaXplIHRoZSByaXNrIGZ1bmN0aW9uIHdlIHdhbnQgfSBcbXUgXHRleHR7IHRvIGJlIGFzIGZhciBhcyBsYXJnZSBhcyBwb3NzaWJlIH0NClxcDQpcbXVeKiA9IGEgXFJpZ2h0YXJyb3cgY14qPSBcdW5kZXJzZXQge2N9e2FyZ21pbn0gKGMtMSleMmFeMiAgKyBjXjJcc2lnbWFeMg0KXFwNClxmcmFje1xwYXJ0aWFsIChjLTEpXjJhXjIgICsgY14yXHNpZ21hXjJ9e1xwYXJ0aWFsIGN9ID0gY2EtYStjXHNpZ21hXjIgPSAwIFxpZmYgYyA9IFxmcmFje2F9e2EgKyBcc2lnbWFeMn1cUmlnaHRhcnJvdyBjXiogPSBcZnJhY3thfXthICsgXHNpZ21hXjJ9DQpcXA0KXHRleHR7dGh1cyB3ZSBnZXQ6IH0gXGhhdCBcbXVfYyA9IFxmcmFje2F9e2EgKyBcc2lnbWFeMn0geQ0KJCQNCg0KIyMjIyBpaQ0KDQokJA0KXHJobyhccGksIFxkZWx0YSkgPSBcc3VtX3tqPTF9XjIgUihcbXVfaixcZGVsdGEpXHBpKFxtdV9qKSA9IDAuNVIoYSwgXGRlbHRhKSArIDAuNVIoLWEsIFxkZWx0YSkgPSAwLjUoKGMtMSleMmFeMiAgKyBjXjJcc2lnbWFeMiArIChjLTEpXjJhXjIgICsgY14yXHNpZ21hXjIpID0gKGMtMSleMmFeMiAgKyBjXjJcc2lnbWFeMg0KXFwNClx0ZXh0e2FzIHdlIHNhdyB0aGUgbWlubWF4IGVzdGltYXRvciBtaW5pbWl6ZXMgdGhpcyBmdW50aW9uIHRodXMgfSAgXGRlbHRhX1xwaV4qIFx0ZXh0eyBpcyBhIG1pbm1heCBydWxlICx0aGVyZm9yZSBpdCBpcyBhIGxlYXN0IGZhdm9yYWJsZSBwcmlvcn0NClxcDQpcZGVsdGFfXHBpXiogXHRleHR7IGlzIHVuaXF1ZSBhbmQgfSBcZGVsdGFfXHBpXiogPCBcaW5mdHkgXHRleHR7IHRodXMgaXQgaXMgYWRkbWlzc2libGV9DQokJA0KDQojIFEyDQoNCiFbXShRMi5wbmcpDQoNCiMjIyBhDQoNCiQkDQpMKHAsIGEpID0gKHAgLSBhKV4yDQpcXA0KXHRleHR7dXNpbmcgdGhlIGhpbnQgYW5kIHRha2luZyBhIGJldGEgcHJpb3Igd2UgY2FuIGNhbGF1bGF0ZSB0ZSBwb3N0ZXJpb3I6IH0NClxcDQpccGkocHx5KSBccHJvcHRvIHtuIFxjaG9vc2UgeX0gcF57eX0oMS1wKV57bi15fXBee1xhbHBoYS0xfSgxLXApXntcYmV0YS0xfSBccHJvcHRvIHBee3krIFxhbHBoYS0xfSh5KzEtcClee24teStcYmV0YS0xfQ0KXFwNClx0ZXh0e3RodXMgd2UgZ2V0OiB9IFxwaShwfHkpIFxzaW0gQmV0YSh5KyBcYWxwaGEsIG4teStcYmV0YSkNClxcDQpcdGV4dHt3ZSBjYW4gY2FsY3VsYXRlIHRoZSBiYXllcyBydWxlIGVzdGltYXRvcjogfQ0KXFwNClxoYXQgcCA9IEUocHx5KSA9IFxmcmFje3krIFxhbHBoYX17eSsgXGFscGhhK24teStcYmV0YX0gPSBcZnJhY3t5KyBcYWxwaGF9e1xhbHBoYStuK1xiZXRhfQ0KXFwNClx0ZXh0e3BsdWcgaXQgaW50byB0aGUgcmlzayBmdW5jdGlvbjogfQ0KUihwLFxoYXQgcCkgPSBCaWFzKHAtIFxoYXQgcCkgKyBWKFxoYXQgcCkNClxcDQpCaWFzKFxoYXQgcC1wKSA9IFxmcmFje25wICsgXGFscGhhfXtcYWxwaGErbitcYmV0YX0gLSBwID0gXGZyYWN7XGFscGhhIC0gKFxhbHBoYStcYmV0YSlwfXtcYWxwaGErbitcYmV0YX0NClxcDQpWKFxoYXQgcCkgPSBcZnJhY3tWKHkpfXsoXGFscGhhK24rXGJldGEpXjJ9ID0gXGZyYWN7bnAoMS1wKX17KFxhbHBoYStuK1xiZXRhKV4yfQ0KXFwNClx0ZXh0e3BsdWcgYm90aCBlcXVhdGlvbnMgYmFjayBpbiB9IFIocCxcaGF0IHApOg0KXFwNClIocCxcaGF0IHApID0gXGxlZnQgKFxmcmFje1xhbHBoYSAtIChcYWxwaGErXGJldGEpcCB9e1xhbHBoYStuK1xiZXRhfSBccmlnaHQgKV4yICsgXGZyYWN7bnAoMS1wKX17KFxhbHBoYStuK1xiZXRhKV4yfSA9IFxmcmFje25wKDEtcCkgKyAoXGFscGhhLSAoXGFscGhhK1xiZXRhKXApXjJ9eyhcYWxwaGErbitcYmV0YSleMn0gPSBcZnJhY3tucCgxLXApICsgXGFscGhhXjIgLSAyXGFscGhhKFxhbHBoYStcYmV0YSlwICsgKChcYWxwaGErXGJldGEpcCleMn17KFxhbHBoYStuK1xiZXRhKV4yfSA9IA0KXFwNCj0gXGZyYWN7XGFscGhhXjIgKyAoLTJcYWxwaGEoXGFscGhhK1xiZXRhKSArIG5wKXAgKyAoKFxhbHBoYStcYmV0YSleMi1uKXBeMn17KFxhbHBoYStuK1xiZXRhKV4yfQ0KXFwNClx0ZXh0e3RodXMgaWYgfSAoLTJcYWxwaGEoXGFscGhhK1xiZXRhKSArIG5wKSA9IDAgXHRleHR7IGFuZCB9IChcYWxwaGErXGJldGEpXjItbiA9IDANCiQkDQoNCiQkDQpcdGV4dHt0aHVzIGlmIH0gKC0yXGFscGhhKFxhbHBoYStcYmV0YSkgKyBucCkgPSAwIFx0ZXh0eyBhbmQgfSAoXGFscGhhK1xiZXRhKV4yLW4gPSAwIA0KXFwNClx0ZXh0eyB3ZSBnZXQgYSByaXNrIGZ1bmN0aW9uIHdoaWNoIGRvZXMgbm90IGRlcGVuZCBvbiBwIGFuZCB3ZSBoYXZlIGEgbWlubWF4IGVzdGltYXRvcn0NClxcDQpcdGV4dHtpZiB3ZSB0YWtlIH0gXGFscGhhID0gXGJldGEgPSAwLjVcc3FydCBuIDoNClxcDQooMSk6ICgtMlxhbHBoYShcYWxwaGErXGJldGEpICsgbnApID0gMCBccXVhZA0KKDIpOiAoXGFscGhhK1xiZXRhKV4yLW4gPSAwDQpcXA0KXHRleHR7dGh1cyB3ZSBnZSB0aGF0IHRoZSBtaW5tYXggZXN0aW1hdG9yIGlzOiB9IFxoYXQgcCA9IEUocHx5KSA9IFxmcmFje3krIDAuNSBcc3FydCBufXtuICsgXHNxcnQgbn0NCiQkDQoNCiMjIyBiDQoNCiQkDQpcdGV4dHsgdGhlIGFib3ZlIGVzdGltYXRvciBpcyBhZGRtaXNzaWJsZSBzaW5jZSBpdCBpcyBhIHVuaXF1ZSBiYXllcyBydWxlfQ0KXFwNCkJldGEoXGFscGhhLCBcYmV0YSkgXHRleHR7IGlzIGEgbGVhc3QgZmF2b3JhYmxlIHByaW9yICh0aGUgcmlzayBmdW5jdGlvbiBpcyBjb25zdGFudCBmb3IgYWxsIHApfQ0KJCQNCg0KJCQNClxyaG8oXHBpLCBhKSA9IFxpbnQgTChwLCBhKSBcdGV4dHtCZXRhfShcYWxwaGEsIFxiZXRhKSBkcCA9IFxpbnQgKHAgLSBhKV4yICBcZnJhY3twXntcYWxwaGEtMX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLCBcYmV0YSl9ZHANClxcDQpcaW50IChwIC0gYSleMiBcZnJhY3twXntcYWxwaGEtMX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLCBcYmV0YSl9ZHAgPSBcaW50IFxmcmFje3Bee1xhbHBoYSsxfSgxLXApXntcYmV0YS0xfX17QihcYWxwaGEsXGJldGEpfSAtIDIgYSBcZnJhY3twXntcYWxwaGF9KDEtcClee1xiZXRhLTF9fXtCKFxhbHBoYSxcYmV0YSl9IC0gYV4yIFxmcmFje3Bee1xhbHBoYS0xfSgxLXApXntcYmV0YS0xfX17QihcYWxwaGEsXGJldGEpfSBkcCA9DQpcXA0KXGludCBcZnJhY3twXntcYWxwaGErMX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLFxiZXRhKX0gZHAgPSBcZnJhY3tcYWxwaGEoXGFscGhhICsxKX17KFxhbHBoYSArIFxiZXRhICsgMSkoXGFscGhhICsgXGJldGEpfUIoXGFscGhhLFxiZXRhKVxpbnQgXGZyYWN7cF57XGFscGhhKzF9KDEtcClee1xiZXRhLTF9fXtCKFxhbHBoYSxcYmV0YSlCKFxhbHBoYSsyLFxiZXRhKX0gPSBcZnJhY3tcYWxwaGEoXGFscGhhICsxKX17KFxhbHBoYSArIFxiZXRhICsgMSkoXGFscGhhICsgXGJldGEpfQ0KXFwNClxpbnQgMiBhIFxmcmFje3Bee1xhbHBoYX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLFxiZXRhKX0gZHAgPSAgXGxkb3RzPSAyYSBcZnJhY3tcYWxwaGF9eyhcYWxwaGEgKyBcYmV0YSl9DQpcXA0KXGludCBhXjIgXGZyYWN7cF57XGFscGhhLTF9KDEtcClee1xiZXRhLTF9fXtCKFxhbHBoYSxcYmV0YSl9IGRwID0gYV4yDQpcXA0KXHRleHR7cGx1Z2dpbmcgYWxsIHRoZSBjYWxjdWxhdGlvbnMgYmFjayBpbiB3ZSBnZXQ6fQ0KXFwNClxpbnQgKHAgLSBhKV4yIFxmcmFje3Bee1xhbHBoYS0xfSgxLXApXntcYmV0YS0xfX17QihcYWxwaGEsIFxiZXRhKX1kcCA9IFxmcmFje1xhbHBoYShcYWxwaGEgKzEpfXsoXGFscGhhICsgXGJldGEgKyAxKShcYWxwaGEgKyBcYmV0YSl9IC0yYSBcZnJhY3tcYWxwaGF9eyhcYWxwaGEgKyBcYmV0YSl9ICsgYV4yDQpcXA0KXGZyYWN7XGFscGhhKFxhbHBoYSArMSl9eyhcYWxwaGEgKyBcYmV0YSArIDEpKFxhbHBoYSArIFxiZXRhKX0gLTJcZnJhY3t5KyBcYWxwaGF9e1xhbHBoYStuK1xiZXRhfSBcZnJhY3tcYWxwaGF9eyhcYWxwaGEgKyBcYmV0YSl9ICsgKFxmcmFje3krIFxhbHBoYX17XGFscGhhK24rXGJldGF9KV4yDQokJA0KDQojIyMgYw0KDQokJA0KXGhhdCBwID0gXGZyYWN7WX17bn0gXHRleHR7IGlzIGFkZG1pc3NpYmxlOn0NClxcDQpcZnJhY3tZfXtufSBcdGV4dHtpcyBhIGJheWVzIHJ1bGUgdy5yLnQgfSBcZnJhY3socC1hKV4yfXtwKDEtcCl9IFx0ZXh0eyAodGh1cyBhZGRtaXNzaWJsZSl9DQpcXA0KXHRleHR7YXNzdW1lIHRoZXJlIGV4c2lzdHMgc29tZSBlc3RpbWF0b3IgfSBcdGlsZGUgcCBcdGV4dHsgc3VjaCB0aGF0OiB9IE1TRShwLVx0aWxkZSBwKSA8IE1TRShwLVxoYXQgcCkgXHRleHR7IHdlIGdldCB0aGUgZm9sbG93aW5nOn0NClxcDQpMXioocCxcdGlsZGUgcCkgPSBcZnJhY3tFWyhwLVx0aWxkZSBwKV4yXX17cCgxLXApfSBcbGUgXGZyYWN7RVsocC1caGF0IHApXjJdfXtwKDEtcCl9ID0gTF4qKHAsXGhhdCBwKQ0KXFwNClx0ZXh0e3doaWNoIGlzIGEgY29udHJhZGljdGlvbiB0byB0aGUgYWRkbWlzc2libGl0eSBvZiB9IFxoYXQgcCBcdGV4dHsgdy5yLnQgfSBMXioNCiQkDQoNCiMgUTMNCg0KIVtdKFEzLnBuZykNCg0KIyMjIGENCg0KJCQNCmRpZmluZTogYSA9IDAgXFJpZ2h0YXJyb3cgYWNjZXB0IFwgSF8wLCBccXVhZCBhID0gMSBcUmlnaHRhcnJvdyBhY2NlcHQgXCBIXzENClxcDQpwX3t5aX0gPSBQKFx0aGV0YSA9IFx0aGV0YV9pIHx5KQ0KXFwNCkwoXHRoZXRhLCBhKSA9IGFMXzFJKFx0aGV0YSA9IFx0aGV0YV8wKSArICgxLWEpTF8wSShcdGhldGEgPSBcdGhldGFfMSkNClxcDQpccmhvIChcdGhldGEsIFxkZWx0YSkgPSBFX3tcdGhldGF8eX0oTChcdGhldGEsIGEpKSA9IFxkZWx0YSBMXzEgcF97eTB9ICsgKDEtXGRlbHRhKUxfMHBfe3kxfSA9IFxkZWx0YSAoTF8xcF97eTB9IC0gTF8wcF97eTF9KSArIExfMHBfe3kxfQ0KXFwNClxkZWx0YV4qID0gYXJnbWluX1xkZWx0YVwgXGRlbHRhIChMXzFwX3t5MH0gLSBMXzBwX3t5MX0pICsgTF8wcF97eTF9DQpcXA0KXHRleHR7dGh1cyBpZjogfSBcZGVsdGFeKiA9IEkoTF8xcF97eTB9IDwgTF8wcF97eTF9KQ0KXFwNCnBfe3kwfSA9IFAoXHRoZXRhID0gXHRoZXRhXzAgfHkpID0gXGZyYWN7Zih5fFx0aGV0YV8wKSBwXzB9eyBmKHkpfQ0KXFwNCnBfe3kxfSA9IFAoXHRoZXRhID0gXHRoZXRhXzEgfHkpID0gXGZyYWN7Zih5fFx0aGV0YV8xKSBwXzF9eyBmKHkpfSA9IFxmcmFje2YoeXxcdGhldGEpICgxLXBfMCl9eyBmKHkpfQ0KXFwNCkxfMXBfe3kwfSA8IExfMHBfe3kxfSBcaWZmIFxmcmFje3Bfe3kxfX17cF97eTB9fSA8IFxmcmFje0xfMH17TF8xfSBcaWZmICBcZnJhY3tcZnJhY3tmKHl8XHRoZXRhXzApIHBfMH17IGYoeSl9fXtcZnJhY3tmKHl8XHRoZXRhXzEpICgxLXBfMCl9eyBmKHkpfX0gPCBcZnJhY3tMXzB9e0xfMX0gXGlmZiBcZnJhY3tmKHl8XHRoZXRhXzApfXtmKHl8XHRoZXRhXzEpfSA8IFxmcmFjeygxLXBfMClMXzB9e3BfMExfMX0NClxcDQpcdGV4dHt0aHVzIHRoZSBiYXllcyB0ZXN0aW5nIHJ1bGUgaXM6IH0gIFxmcmFje3BfMExfMX17KDEtcF8wKUxfMH0gPCBcZnJhY3tmKHl8XHRoZXRhXzEpfXtmKHl8XHRoZXRhXzApfQ0KJCQNCg0KIyMjIGINCg0KDQokJA0KXHRleHR7dGhpcyBpcyBhIGxpa2xpaG9vZCByYXRpbyB0ZXN0IGFuZCB0aHVzIGEgbW9zdCBwb3dlcmZ1bGwgdGVzdC4gdGhlIGNyaXRpY2FsIHZhbHVlcyBvZiB0aGUgdGVzdCBpczogfSBcZnJhY3twXzBMXzF9eygxLXBfMClMXzB9DQokJA0KDQoNCiMjIyBjDQoNCg0KJCQNClx0ZXh0e3RoZSByaXNrIGZ1bmN0aW9uIGlzOiB9DQpcXA0KUihcdGhldGEsIFxkZWx0YV4qKSA9IFxiZWdpbntjYXNlc30NClAoXGRlbHRhXiogPSAxKSBMXzAgJiBcdGhldGEgPSBcdGhldGFfMCBcXA0KUChcZGVsdGFeKiA9MClMXzEgICYgXHRoZXRhID0gXHRoZXRhXzENClxlbmR7Y2FzZXN9ID0gXGJlZ2lue2Nhc2VzfQ0KXGFscGhhIExfMCAmIFx0aGV0YSA9IFx0aGV0YV8wIFxcDQpcYmV0YSBMXzEgICYgXHRoZXRhID0gXHRoZXRhXzENClxlbmR7Y2FzZXN9ICA9IFxiZWdpbntjYXNlc30NClxhbHBoYSBMXzAgJiBcdGhldGEgPSBcdGhldGFfMCBcXA0KXGFscGhhIExfMCAgJiBcdGhldGEgPSBcdGhldGFfMQ0KXGVuZHtjYXNlc30NClxcDQpcdGV4dHt3aGljaCBkb2VzIG5vdCBkZXBlbmQgb24gfSBcdGhldGEgXHRleHR7IHRodXMgdGhlIHRlc3QgaXMgYWxzbyBtaW5tYXh9DQokJA0KDQoNCiMjIyBkDQoNCiQkDQoqIFx0ZXh0e0xSLSBMaWtsaWhvb2QgcmF0aW8sIExMUi0gTG9nIExpa2xpaG9vZCByYXRpb30NClxcDQpMUiA9IFxmcmFje2YoeXxcbXVfMSl9e2YoeXxcbXVfMCl9ID0gZXhwIFxsZWZ0IFx7LVxmcmFjezF9ezUwfVxzdW1fe2k9MX1eezEwMH0gKHlfaS0yKV4yK1xmcmFjezF9ezUwfVxzdW1fe2k9MX1eezEwMH0geV9pXjIgIFxyaWdodCBcfQ0KJCQNCg0KDQokJA0KXGZyYWN7MTAgcF8wfXsyNSAoMS1wXzApfSA8IExSIFxpZmYgTExSID4gbG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgXGxlZnQgXHstXGZyYWN7MX17NTB9XHN1bV97aT0xfV57MTAwfSAoeV9pLTIpXjIrXGZyYWN7MX17NTB9XHN1bV97aT0xfV57MTAwfSB5X2leMiAgXHJpZ2h0IFx9ID4gbG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgDQpcXA0KXGlmZiAtXGZyYWN7MX17NTB9XHN1bV97aT0xfV57MTAwfSAoeV9pXjItNHlfaSArNCAteV9pXjIpICA+bG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgOCBcYmFyIHkgLSA4ICA+bG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgDQpcXA0KXGlmZiBcYmFyIHkgPiAxK1xmcmFjezF9ezh9bG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApDQpcXA0KXHRleHR7anVzdCBuZWVkIHRvIGFkZCBwbHVnIGluIH0gcF8wIFx0ZXh0eyBhbmQgd2UgaGF2ZSBhIHZhbGlkIHRlc3R9DQpcXA0KJCQNCg0KDQojIFE0DQoNCiFbXShRNC5wbmcpDQoNCg0KJCQNClx0ZXh0e2NhbGN1bGF0ZSB0ZSBwb3N0ZXJpb3I6IH0NClxcDQpccGkoXHRoZXRhfHgpIFxwcm9wdG8gZV57LSh4LVx0aGV0YSl9IGVeey1cdGhldGF9SSgwPFx0aGV0YSA8eCkgPSBlXnsteH1JKDA8XHRoZXRhIDx4KSBccXVhZCBcdGV4dHt3aGljaCBpcyBhIGNvbnN0YW50IGZ1bmN0aW9uIG9mIH0gXHRoZXRhDQpcXA0KXHRleHR7IHRodXMgfSBcdGhldGF8eCBcc2ltIFVbMCx4XQ0KXFwNClxyaG8oXHRoZXRhLCBcZGVsdGEpID0gRV97XHRoZXRhfHh9IEwoXHRoZXRhLCBcZGVsdGEpIFxiZWdpbntjYXNlc30NClAoMSA8IFx0aGV0YSA8IDIpICsgUCgyIDwgXHRoZXRhIDwgMykgKyAzUCgzIDwgXHRoZXRhIDwgNCkgJiBcZGVsdGEgPSBBQiBcXA0KMVAoMCA8IFx0aGV0YSA8IDEpICsgMlAoMiA8IFx0aGV0YSA8IDMpICsgM1AoMyA8IFx0aGV0YSA8IDQpICYgXGRlbHRhID0gQSBcXA0KMVAoMCA8IFx0aGV0YSA8IDEpICsgMlAoMSA8IFx0aGV0YSA8IDIpICsgM1AoMyA8IFx0aGV0YSA8IDQpICYgXGRlbHRhID0gQiBcXA0KMlAoMCA8IFx0aGV0YSA8IDEpICsgMlAoMSA8IFx0aGV0YSA8IDIpICsgMlAoMiA8IFx0aGV0YSA8IDMpICYgXGRlbHRhID0gTyBcXA0KXGVuZHtjYXNlc30NClxcDQpcdGV4dHtmb3IgdGhlIGNhc2Ugd2hlcmUgeD00OiB9IFAoMSA8IFx0aGV0YSA8IDIpID0gMC4yNSBcdGV4dHsgcGx1Z2dpbmcgaXQgYmFjayBpbiB5aWVsZHM6IH0NClxcDQpccmhvKFx0aGV0YSwgXGRlbHRhKSA9IEVfe1x0aGV0YXx4fSBMKFx0aGV0YSwgXGRlbHRhKSBcYmVnaW57Y2FzZXN9DQoxLjI1ICYgXGRlbHRhID0gQUIgXFwNCjEuNSAmIFxkZWx0YSA9IEEgXFwNCjEuNSAmIFxkZWx0YSA9IEIgXFwNCjEuNSAmIFxkZWx0YSA9IE8gXFwNClxlbmR7Y2FzZXN9DQpcXA0KXHRleHR7dGhlIGJheWVzIGFjdGlvbiB0aGF0IG1pbmltaXplcyB9IFxyaG8oXHRoZXRhLCBcZGVsdGEpIFx0ZXh0eyBpcyB9IFxkZWx0YSA9IEFCDQokJA0KDQoNCiMgUTUNCg0KIVtdKFE1LnBuZykNCg0KIyMjIGENCg0KJCQNClx0ZXh0e3dlIHNhdyB0aGF0IGZvcjogfSBYIFxzaW0gTihcbXVfeCwgXHNpZ21hXjJfeCksIFxtdV94IFxzaW0gTihcdGlsZGUgXG11LCBcc2lnbWFeMikNClxcDQpcbXVfeHx4IFxzaW0gTihcZnJhY3tcc2lnbWFeMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fXgrXGZyYWN7XHNpZ21hX3heMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fSBcdGlsZGUgXG11LCAoXHNpZ21hXjIgKyBcc2lnbWFeMl94KV57LTF9KQ0KXFwNClx0ZXh0e3RoZSBiYXllcyBlc3RpbWF0ZSB3LnIudCB0aGUgcXVhZHJhdGljIGxvc3MgaXM6IH0gRV97XG11X3h8eH0gPSBcZnJhY3tcc2lnbWFeMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fXgrXGZyYWN7XHNpZ21hX3heMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fSBcdGlsZGUgXG11DQpcXA0KXHRleHR7cHVsZ2dpbmcgaW4gb3VyIHNldHVwIHlpZWxkczogfSBFX3tcbXVfeHx4fSA9IFxmcmFjezIyNX17MzI1fTExNStcZnJhY3sxMDB9ezMyNX0xMDAgPSAxMTAuMzg0Ng0KJCQNCg0KIyMjIGINCg0KJCQNClxyaG8oeCwgXGRlbHRhKSA9IEVfe1xtdXx4fSBMKFxtdSwgXGRlbHRhKSA9IFxpbnRfey0gXGluZnR5fV5cZGVsdGEgKFxkZWx0YSAtIFxtdSlmKFxtdXx4KSBkXG11ICsgMlxpbnRfe1xkZWx0YX1eXGluZnR5IChcbXUtIFxkZWx0YSlmKFxtdXx4KSBkXG11PQ0KXFwNCj0gXGRlbHRhXGludF97LSBcaW5mdHl9XlxkZWx0YSBmKFxtdXx4KSBkXG11IC0gXGludF97LSBcaW5mdHl9XlxkZWx0YSBcbXUgZihcbXV8eCkgZFxtdSArIDJcaW50X3tcZGVsdGF9XlxpbmZ0eSBcbXUgZihcbXV8eCkgZFxtdSAtIDJcZGVsdGEgXGludF97XGRlbHRhfV5caW5mdHkgZihcbXV8eCkgZFxtdT0NClxcDQo9XGRlbHRhIEYoXGRlbHRhKSAtIFxpbnRfey0gXGluZnR5fV5cZGVsdGEgXG11IGYoXG11fHgpIGRcbXUgKyAyXGludF97XGRlbHRhfV5caW5mdHkgXG11IGYoXG11fHgpIGRcbXUgLSAyXGRlbHRhKDEtRihcZGVsdGEpKQ0KXFwNClxmcmFje1xwYXJ0aWFsIFxyaG8oeCwgXGRlbHRhKX17XHBhcnRpYWwgXGRlbHRhfSA9IEYoXGRlbHRhKSArIFxkZWx0YSBmKFxkZWx0YXx4KSAtIFxkZWx0YSBmKFxkZWx0YXx4KSAtIDIgXGRlbHRhIGYoXGRlbHRhfHgpIC0gMiArIDJGKFxkZWx0YSkgKyAyIFxkZWx0YSBmKFxkZWx0YXx4KSA9IDNGKFxkZWx0YXx4KSAtIDIgPSAwIFxpZmYgXGRlbHRhID0gRl57LTF9KDIvMykgXFJpZ2h0YXJyb3cgXGRlbHRhXiogPSBGXnstMX0oMi8zKQ0KXFwNClx0ZXh0e3VzaW5nIHIgcW5vcm0gZnVuY3Rpb24gd2UgY2FuIGVzdGltYXRlIHRoZSBnZW5pdXMgSVEgdy5yLnQgdG8gdGhpcyBsb3NzIHdoaWNoIHlpbGVkczogfSAxMTMuOTY4NQ0KXFwNCiogcW5vcm0oMi8zLCAxMTAuMzg0Niwgc3FydCg5MDAvMTMpKQ0KJCQNCg0KDQojIyMgYw0KDQokJA0KXHJobyh4LCBcZGVsdGEpID0gRV97XG11fHh9IEwoXG11LCBcZGVsdGEpID0gXGludF97LSBcaW5mdHl9XlxpbmZ0eSAoXGRlbHRhIC0gXG11KV4yZV57XGZyYWN7KFxtdS0xMDApXjJ9ezkwMH19ZihcbXV8eCkgZFxtdQ0KJCQNCg==